import pandas as pd
#東京電力のオープンデータを読み込む
elec = pd.read_csv(
"tepco.csv",
#日付と時間を結合したセルに変更する
parse_dates={'datetime': ['DATE', 'TIME']})
#使用する文字列をアルファベットに変更する
columns={
"東京エリア需要":"tky_dmnd",
"火力":"thp",
"水力":"hyd",
"太陽光発電実績":"slr"
}
#再度読み込みを行う
elec.rename(columns=columns, inplace=True)
elec.head()
import plotly
plotly.offline.init_notebook_mode(connected=False)
#ラベルオプションの設定を行う
data = [plotly.graph_objs.Scatter(x=elec["datetime"], y=elec["tky_dmnd"], name="東京エリア需要")]
layout = plotly.graph_objs.Layout(
title="東京エリア需要(1時間毎の時系列)",
legend={"x":0.8, "y":0.1},
xaxis={"title":"datetime"},
yaxis={"title":"東京エリア需要(万kw)"}
)
fig = plotly.graph_objs.Figure(data=data, layout=layout)
plotly.offline.iplot(fig, show_link=False)
thp = plotly.graph_objs.Scatter(x=elec["datetime"], y=elec["thp"], mode = "lines", name="火力", marker=dict(color="rgba(220,20,60,0.7)"))
hyd = plotly.graph_objs.Scatter(x=elec["datetime"], y=elec["hyd"], mode = "lines", name="水力", marker=dict(color="rgba(0,128,255,0.8)"))
slr = plotly.graph_objs.Scatter(x=elec["datetime"], y=elec["slr"], mode = "lines", name="太陽光", marker=dict(color="rgba(255,165,0,0.8)"))
#火力・水力・太陽光のデータの結合を行う
el = [thp, slr, hyd]
layout = plotly.graph_objs.Layout(
title="発電量割合(1時間毎の時系列)",
legend={"x":1.0, "y":1.0},
xaxis={"title":"date_time"},
yaxis={"title":"発電量(万kw)"}
)
fig = plotly.graph_objs.Figure(data=el, layout=layout)
plotly.offline.iplot(fig, show_link=False)
#気象庁のデータを読み出す
wh = pd.read_csv('wh.csv')
wh.head()
#気象庁のデータの読み込みを行う
wh = pd.read_csv('wh.csv', parse_dates={'datetime': ['date', 'time']})
wh.rename(columns=columns, inplace=True)
wh.head()
#気温と電力需要の相関を作成するのに必要なカラムを抽出する。結合条件は日時
dat = pd.merge(elec, wh, how="inner")
dat = dat.loc[:,["datetime","tky_dmnd","temp","rain","sunshine"]]
dat.head()
cor_dmnd = [plotly.graph_objs.Scatter(x=dat["temp"], y=dat["tky_dmnd"], mode = "markers", marker=dict(color="rgba(64,64,64,0.6)"))]
layout = plotly.graph_objs.Layout(
title="電力需要と気温の関係",
legend={"x":0.8, "y":0.1},
xaxis={"title":"気温(℃)"},
yaxis={"title":"電力需要(万kw)"}
)
fig = plotly.graph_objs.Figure(data=cor_dmnd , layout=layout)
plotly.offline.iplot(fig, show_link=False)
#東京の電力消費データと気温のデータの結合を行う
tokyo = elec.join(wh["temp"]).dropna().as_matrix()
tokyo
tokyo_elec = tokyo[:, 1:2]
tokyo_wthr = tokyo[:, 2:]
tokyo_wthr
# SVMを用いるために必要なライブラリーの呼び出し
#import sklearn.cross_validation
from sklearn.model_selection import cross_val_score
import sklearn.svm
data_count = len(tokyo_elec)